importPackage(Packages.de.elo.ix.client);
//@include lib_Class.js
//@include lib_sol.common.SordUtils.js
//@include lib_sol.common.RepoUtils.js
//@include lib_sol.common.ObjectUtils.js
//@include lib_sol.common.CounterUtils.js
//@include lib_sol.common.Template.js
//@include lib_sol.common.TranslateTerms.js
//@include lib_sol.common.ObjectFormatter.js
//@include lib_sol.common.ix.FunctionBase.js
var logger = sol.create("sol.Logger", { scope: "sol.common.ix.functions.ChangeWfName" }); // eslint-disable-line one-var
/**
* Changes the workflow name
*
* # As workflow node
*
* ObjId is set based on the element that the workflow is attached to.
*
* Following configuration should be applied to the comments field for a field update:
*
* ## Examples
* Workflow name based on the sord name and a counter:
*
* {
* "name": "{{sord.name}} - {{count 'MY_WF_COUNTER'}}"
* }
*
* Workflow name based on an index, a map and a wf-map field
*
* {
* "name": "{{{sord.objKeys.CUSTOMER_NAME}}} - {{{sord.mapKeys.REF_NO}}} - {{{sord.wfMapKeys.FLOW_ID}}}"
* }
*
* # As IX function call
*
* In addition to the workflow node configuration the objId must be passed.
*
* sol.common.IxUtils.execute("RF_sol_function_ChangeWfName", {
* flowId: "222",
* name: "{{sord.name}} - {{count 'MY_WF_COUNTER'}}"
* });
*
* @author MW, ELO Digital Office GmbH
* @version 1.0
*
* @eloix
* @requires sol.Logger
* @requires sol.common.SordUtils
* @requires sol.common.JsonUtils
* @requires sol.common.RepoUtils
* @requires sol.common.ObjectUtils
* @requires sol.common.CounterUtils
* @requires sol.common.Template
* @requires sol.common.TranslateTerms
* @requires sol.common.ObjectFormatter.TemplateSord
* @requires sol.common.WfUtils
* @requires sol.common.ix.RfUtils
* @requires sol.common.ix.FunctionBase
*
*/
sol.define("sol.common.ix.functions.ChangeWfName", {
extend: "sol.common.ix.FunctionBase",
requiredConfig: ["objId"],
/**
* @cfg {string} objId (required)
* Object ID
*/
/**
* @cfg {string} flowId
* Flow ID
*/
/**
* @cfg {string} name
* Workflow name
*/
initialize: function (config) {
var me = this;
me.$super("sol.common.ix.FunctionBase", "initialize", [config]);
},
/**
* Changes the workflow name
*/
process: function () {
var me = this,
wfName;
if (!me.wfDiagram && me.flowId) {
me.wfDiagram = sol.common.WfUtils.getWorkflow(me.flowId);
}
me.sord = sol.common.RepoUtils.getSord(me.objId, { sordZ: SordC.mbAllIndex });
me.tplSord = sol.common.WfUtils.getTemplateSord(me.sord, me.wfDiagram.id);
wfName = sol.create("sol.common.Template", { source: me.name }).apply(me.tplSord);
me.wfDiagram.name = wfName;
me.wfDiagram.nameTranslationKey = "";
}
});
/**
* @member sol.common.ix.functions.ChangeWfName
* @static
* @inheritdoc sol.common.ix.FunctionBase#onEnterNode
*/
function onEnterNode(clInfo, userId, wfDiagram, nodeId) {
var params, module;
logger.enter("onEnterNode_ChangeWfName", { flowId: wfDiagram.id, nodeId: nodeId });
params = sol.common.WfUtils.parseAndCheckParams(wfDiagram, nodeId, "name");
params.objId = wfDiagram.objId;
params.wfDiagram = wfDiagram;
module = sol.create("sol.common.ix.functions.ChangeWfName", params);
module.process();
logger.exit("onEnterNode_ChangeWfName");
}
/**
* @member sol.common.ix.functions.ChangeWfName
* @static
* @inheritdoc sol.common.ix.FunctionBase#onExitNode
*/
function onExitNode(clInfo, userId, wfDiagram, nodeId) {
var params, module;
logger.enter("onExitNode_ChangeWfName", { flowId: wfDiagram.id, nodeId: nodeId });
params = sol.common.WfUtils.parseAndCheckParams(wfDiagram, nodeId, "name");
params.objId = wfDiagram.objId;
params.wfDiagram = wfDiagram;
module = sol.create("sol.common.ix.functions.ChangeWfName", params);
module.process();
logger.exit("onExitNode_ChangeWfName");
}
/**
* @member sol.common.ix.functions.ChangeWfName
* @method RF_sol_function_ChangeWfName
* @static
* @inheritdoc sol.common.ix.FunctionBase#RF_FunctionName
*/
function RF_sol_function_ChangeWfName(ec, args) {
var params, module;
logger.enter("RF_sol_function_ChangeWfName", args);
params = sol.common.ix.RfUtils.parseAndCheckParams(ec, arguments.callee.name, args, "flowId", "name");
module = sol.create("sol.common.ix.functions.ChangeWfName", params);
module.process();
ixConnect.ix().checkinWorkFlow(module.wfDiagram, WFDiagramC.mbAll, LockC.NO);
logger.exit("RF_sol_function_ChangeWfName");
}